﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using Domain; //подключение Domain
using Session; //подключение Session
using Notif; //подключение Notif

namespace Sale_Dep_Dlv
{
    public partial class FormDlv : Form
    {
        BrokerDlv b_dlv = new BrokerDlv(); // объявление BrokerDlv
        FormDlvUdp f_upd = new FormDlvUdp(); // объявление FormDlvUdp
        FormDlvInsr f_insr = new FormDlvInsr(); // объявление FormDlvInsr

        public FormDlv()
        {
            InitializeComponent();
        }

        private void Prs_sBt_Insr_Click(object sender, EventArgs e) // открытие формы "Добавить"
        {
            f_insr.ShowDialog();  
        }

        private void Dlv_sBt_Upd_Click(object sender, EventArgs e) // открытие формы "Редактирование"
        {
            f_upd.ShowDialog();  
        }

        private void FormDlv_Activated(object sender, EventArgs e) // при навидение фокуса, Grid перезаполняется
        {
            FillGrid(); // вызов функции заполнения Grid 

            if (Dm_User.Id_post == 3)
            {
                Dlv_sBt_Del.Visible = true;
                Prs_sBt_Insr.Enabled = false;
            }
            else
            {
                Prs_sBt_Insr.Enabled = true;
                Dlv_sBt_Del.Visible = false;
            }
                
        }

        private void Dlv_sBt_Ex_Click(object sender, EventArgs e) // закрытие формы
        {
            this.Close();
        }

        private void Dlv_sBt_Del_Click(object sender, EventArgs e) // удаление записи
        {
            if (MessNotif.Question("Удалить запись?", "Удаление записи") == true) // вызов сообщение, если ответ "Да", то
            {
                Dm_Delivery dlv = new Dm_Delivery(); // объявление Dm_Delivery

                dlv.Id_dlv = Convert.ToInt32(f_upd.label9.Text); // присвоение значений Id_pers из label9

                b_dlv.Delete(dlv); // вызов функции удаления

                FillGrid(); // вызов функции заполнения Grid 
            }
        }

        private void Dlv_dGV_Dlv_SelectionChanged(object sender, EventArgs e) // метод на отслеживание и заполнение из Dlv_dGV_Dlv
        {
            DataGridViewCell cell = null; // объявление DataGridViewCell и его обнуление

            foreach (DataGridViewCell selectedCell in Dlv_dGV_Dlv.SelectedCells) // цикл на выбор ячейки, при выборе ячейки из Dlv_dGV_Dlv, это значение устанавливается в selectedCell 
            {
                cell = selectedCell; // приравнивание cell и selectedCell
                break; // перерывание цикла
            }

            if (cell != null) // если cell не пустой, то
            {
                DataGridViewRow row = cell.OwningRow; // объявление DataGridViewRow и присвоение ему текущего ряда 

                if (Dm_User.Id_pers == Convert.ToInt32(row.Cells[1].Value.ToString()))
                {
                    Dlv_sBt_Upd.Enabled = true;
                }
                else
                {
                    if (Dm_User.Id_post == 3)
                    {
                        Dlv_sBt_Upd.Enabled = true;

                    }
                    else
                        Dlv_sBt_Upd.Enabled = false;
                }
                
                f_upd.label9.Text = row.Cells[0].Value.ToString(); // передача значения из Cells[0] в f_upd.label9.Text
                f_upd.Dlv_Upd_cBE_Mg.Text = row.Cells[1].Value.ToString(); // передача значения из Cells[1] в f_upd.Dlv_Upd_cBE_Mg.Text
                f_upd.Dlv_Upd_dE_Dt.Text = row.Cells[2].Value.ToString(); // передача значения из Cells[2] в f_upd.Dlv_Upd_dE_Dt.Text
                f_upd.Dlv_Upd_tE_DsTmRd.Text = row.Cells[3].Value.ToString(); // передача значения из Cells[3] в f_upd.Dlv_Upd_tE_DsTmRd.Text
                f_upd.Dlv_Upd_tE_Ctmr.Text = row.Cells[4].Value.ToString(); // передача значения из Cells[4] в f_upd.Dlv_Upd_tE_Ctmr.Text
                f_upd.Dlv_Upd_tE_Adrs.Text = row.Cells[5].Value.ToString(); // передача значения из Cells[5] в f_upd.Dlv_Upd_tE_Adrs.Text
                f_upd.Dlv_Upd_tE_Cntc.Text = row.Cells[6].Value.ToString(); // передача значения из Cells[6] в f_upd.Dlv_Upd_tE_Cntc.Text
                f_upd.Dlv_Upd_tE_Nt.Text = row.Cells[7].Value.ToString(); // передача значения из Cells[7] в f_upd.Dlv_Upd_tE_Nt.Text
                f_upd.Dlv_Upd_tE_Mvrs.Text = row.Cells[8].Value.ToString(); // передача значения из Cells[8] в f_upd.Dlv_Upd_tE_Mvrs.Text
                f_upd.label10.Text = row.Cells[11].Value.ToString();
                

            }
        }

        private void FillGrid() // функции заполнения Grid
        {
            Dlv_dGV_Dlv.DataSource = b_dlv.FillGrid(); // вызов функции заполнения
            
            Dlv_dGV_Dlv.Columns[0].Visible = false;
            Dlv_dGV_Dlv.Columns[1].Visible = false;
            Dlv_dGV_Dlv.Columns[11].Visible = false;
            Dlv_dGV_Dlv.Columns[12].Visible = false;
            

            Dlv_dGV_Dlv.Columns[2].HeaderText = "Дата доставки";
            Dlv_dGV_Dlv.Columns[3].HeaderText = "Желаемое время доставки";
            Dlv_dGV_Dlv.Columns[4].HeaderText = "Наименование заказчика ";
            Dlv_dGV_Dlv.Columns[5].HeaderText = "Адрес";
            Dlv_dGV_Dlv.Columns[6].HeaderText = "Контактные данные";
            Dlv_dGV_Dlv.Columns[7].HeaderText = "Примечания";
            Dlv_dGV_Dlv.Columns[8].HeaderText = "Необходимость грузчиков";
            Dlv_dGV_Dlv.Columns[9].HeaderText = "Имя менеджера";
            Dlv_dGV_Dlv.Columns[10].HeaderText = "Фамилия менеджера";
            
          
            Dlv_dGV_Dlv.Columns[2].DisplayIndex = 2;
            Dlv_dGV_Dlv.Columns[3].DisplayIndex = 3;
            Dlv_dGV_Dlv.Columns[4].DisplayIndex = 4;
            Dlv_dGV_Dlv.Columns[5].DisplayIndex = 5;
            Dlv_dGV_Dlv.Columns[6].DisplayIndex = 6;
            Dlv_dGV_Dlv.Columns[7].DisplayIndex = 7;
            Dlv_dGV_Dlv.Columns[8].DisplayIndex = 8;
            Dlv_dGV_Dlv.Columns[9].DisplayIndex = 0;
            Dlv_dGV_Dlv.Columns[10].DisplayIndex = 1;
            
            
            Dlv_dGV_Dlv.AutoResizeColumns();
            //Prs_dGV_Prs.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
        }

        private void FormDlv_Load(object sender, EventArgs e)
        {
            
        }
    }
}
